pub fn func_study() {
    fn get_name()->String{
        return String::from("今天天气真好");
    }

    // 如果没有return关键字，函数会默认使用最后一条语句的执行结果作为返回值，并且数据类型要保持一致。
    fn get_name2()->String {
        String::from("出太阳了")
    }

    // 非引用传递
    fn double_price(mut price:f64) {
        price = price * 10.0;
        println!("price: {}", price);
    }

    // 引用传递
    fn double_price2(price:&mut i32) {
        *price = *price * 2; //内部的值改变之后，外部的值也会跟着变
        println!("price: {}", price);
    }

    fn show_name(name:String) {
        println!("当前name：{}", name);
    }

    let name = get_name();
    let mut price = 99;

    double_price(99.01);
    println!("name: {}", name);
    println!("name2: {}", get_name2());
    // 引用传值
    double_price2(&mut price);
    println!("外部的price：{}", price);
}